{{tag>réseau serveur calcul_collaboratif}}
----


====== Boinc : calculs distribués sur Internet ====== 

{{applications..boinc_logo_july_2007.png|}}

=====  De quoi s'agit-il ?  =====

Comprendre le principe de fonctionnement du logiciel BOINC et apprendre au débutant à l'installer puis à rejoindre facilement un projet.

===== Présentation générale =====

**BOINC**, acronyme de **B**erkeley **O**pen **I**nfrastructure for **N**etwork **C**omputing est une plateforme de calcul distribué mise au point par l'université de Berkeley. Ce programme permet à n'importe quelle personne volontaire de participer à des projets scientifiques en mettant à disposition la puissance de calcul inutilisée de votre ordinateur au profit de la science. Différents projets de calculs sont en cours d'avancement, vous pouvez rejoindre ceux de votre choix à tous moments.
Il n'y a pas de configuration minimale, n'importe quel ordinateur est capable de faire tourner ce logiciel. Les résultats dépendront seulement de la puissance de calcul de votre processeur. Il est tout de même recommandé de disposer d'une connexion internet.






===== Installation de Boinc =====

L'installation de Boinc sous Ubuntu est très simple : il vous suffit simplement d'entrer cette ligne de commande dans un terminal :

<code>sudo apt-get install boinc-client boinc-manager</code>

Installation directe [[apt://boinc-client,boinc-manager|boinc-client et boinc-manager]]

Le logiciel BOINC Manager permettant de contrôler le client BOINC  apparaîtra ensuite dans l'onglet "Outils système" de votre menu "Applications".

Notez bien que le client se lance automatiquement au démarrage d'Ubuntu.

===== Les projets de calculs sous BOINC =====


==== Les différents projets proposés ====

De nombreux projets sont proposés pour Boinc dans ces domaines :

  * La biologie et la médecine,
  * La physique et les nanotechnologies,
  * L'astronomie,
  * La climatologie,
  * Les mathématiques et l'informatique.

Vous pouvez consulter la liste des projets ici. [[http://fr.wikipedia.org/wiki/Liste_des_projets_BOINC]]


==== Rejoindre un projet ====

Lancez Boinc Manager à partir du menu "Applications" -> "Outils système".
Une fenêtre devrait vous proposer de rejoindre un projet. Si ce n'est pas le cas, cliquez sur "Outils" -> "Rejoindre un projet".
Saisissez l'url du projet, par exemple :

  * [[http://www.worldcommunitygrid.org/]]
  * [[http://setiathome.berkeley.edu/]]

Ensuite, cliquez sur : "Non, nouvel utilisateur" puis laissez-vous guider afin de vous inscrire au projet.
Finalement, un message vous confirmant l'attachement au projet devrait apparaître : cliquez sur Fin.

Boinc va maintenant récupérer des calculs et commencer à les exécuter. Vous n'avez même pas besoin d'être connecté à internet pour que Boinc fonctionne. Il vous faut être connecté afin qu'il envoie les résultats et qu'il reçoive de nouveaux calculs.


==== Word Community Grid et Karmic ===

Avec la nouvelle version il faut installer un certificat sinon il y aura cette erreur : "Peer certificate cannot be authenticated with known CA certificates" 

télécharger le certificat a l'adresse suivante : http://boinc.berkeley.edu/trac/browser/trunk/boinc/curl/ca-bundle.crt?format=raw

ouvrir un terminal puis copier le certificat dans le bon dossier : sudo cp ~/Téléchargements/ca-bundle.crt /var/lib/boinc-client

Fermer BOINC et relancer 

Cliquer sur "Advanced View"
Dans l'onglet Projet 
Cliquer sur le projet qui avait l'erreur puis cliquer sur "mettre à jour" 




===== Utilisation du manager =====


==== Mettre Boinc en "pause" ====

Lorsque vous voulez faire faire une pause à Boinc afin d'exécuter un programme gourmand en ressource, cliquez sur le menu : "Activité" -> "Suspendre".
Lorsque vous le relancerez, vous sélectionnerez : "Calculer selon les préférences" ou "Toujours calculer" si vous souhaitez participer au maximum.



==== Les menus sous Boinc ====

La configuration de Boinc est relativement simple. Nous allons voir ici à quoi servent chacun des menus.

  * Fichier : Permet de fermer le manager. Attention, cette procédure ne ferme pas les processus de calculs ouvert par Boinc.
  * Outils : Permet de gérer vos comptes ou de rejoindre un nouveau projet.
  * Activité : Permet de démarrer ou suspendre l'activité du processeur ou l'activité internet.
  * Avancé : Permet de configurer les paramètres pour la connexion entre l'ordinateur et le serveur. Permet par ailleurs de faire des tests de puissances de votre ordinateur. (Rassurez-vous, seuls les utilisateurs expérimentés auront besoin de ce menu)


===== Ligne de commande  =====

==== Préalable ====

Je parle ici de commandes tapées localement. il faut toutefois noter que même dans ce cas de figure il faut prendre quelques précautions :

  * Il faut se trouver dans le repertoire /etc/boinc-client pour ne pas avoir à taper --host localhost juste après chaque commande boinccmd (ou boinc_cmd) ... même si le binaire en question est bien connu dans les variables d'environnement (de toute facon il ne se trouve pas dans /etc/boinc-client).
  * S'il y a un mot de passe dans le fichier /var/lib/boinc-client/gui_rpc_auth.cfg (par exemple mypasswd) alors il faudra commencer toutes les commandes par

  boinc_cmd --host localhost --passwd mypasswd

C'est surprenant d'ailleurs car en principe ce mot de passe sert pour les connexions en gui distantes, mais s'il n'y a pas de mot de passe la commande "boinc_cmd" n'a pas besoin de --host ... ca va plus vite à taper :o)

Il suffit de faire un essai avec
  boinc_cmd -V

Si cela repond Authorization failed : 155, alors il faut préfixer toutes les commandes comme cité plus haut (et être dans le bon répertoire).

==== La doc ====

Les détails de la commande boinc_cmd sont décrits sur [[http://boinc.berkeley.edu/wiki/Boinccmd_tool|cette page]] ou simplement dans le manuel 
  man boinc_cmd
  
  
==== Exemple ====

Voici toutefois un "quickstart" avec un proxy 

=== Indiquer le proxy === 

<code>
--set_proxy_settings http_server_name http_server_port http_user_name http_user_passwd socks_server_name `socks_server_port socks_version socks5_user_name socks5_user_passwd
</code>

Tous les champs étant obligatoires, il faut utiliser deux guillemets pour indiquer une chaine vide. ex :

  boinc_cmd --host localhost  --set_proxy_settings url_du_proxy 1234 "" "" "" "" "" "" ""


Mais attention ! il y a clairement quelque chose qui cloche (sur toutes mes machines 8.10 Intrepid en tout cas) :

  * la commande boinccmd --get_proxy_settings ne retourne jamais rien, même quand un proxy est paramétré et fonctionnel.
  * pour que les parametres proxy indiqués par la commande set_proxy_settings soient pris en compte, il faut éditer manuellement un fichier !

**Stopper le daemon **

  sudo /etc/init.d/boinc-client stop

**editer le fichier :client_state.xml **
  sudo vim /var/lib/boinc-client/client_state.xml

Juste après :
  <proxy_info>
ajouter : 
  <use_http_proxy/>

**relancer le daemon**

  sudo /etc/init.d/boinc-client start

ouf ! Le plus dur est fait.

=== connaitre l'account key de votre compte ===

  boinccmd --lookup_account url_du_projet login mot_de_passe
  
Cela retourne l'account key, une chaine de 32 chiffres.

=== Rejoindre un projet  ===

  boinc_cmd --host localhost  --project_attach URL_du_projet account_key


Voila, au bout de quelques minutes le travail devrait commencer. On peut avoir des infos via la commande 

  boinc_cmd --get_state

Il semble que parfois il faut "forcer" le départ via

  boinccmd --set_run_mode always

===== Liens =====

  * Le site de Boinc (EN) : [[http://boinc.berkeley.edu/]]
  * Le site du World Community Grid : [[http://www.worldcommunitygrid.org/]]
  * Liste des projets : [[http://fr.wikipedia.org/wiki/Liste_des_projets_BOINC]]
  * Le site de l'alliance francophone: [[http://www.boinc-af.org/]]
  * Le site de la 2TF Asso (loi 1901): [[http://www.boinc-2tf.org/]]

----

Contributeurs :  [[utilisateurs:gregm54]] [[utilisateurs:lo72]]